/*
* Gui_Options.java
*
* Created on December 7, 2006, 12:51 PM
*/
package gui;
import aoc.Options;
import sam.fileprocessing.Folders;
import sam.utilities.xml.myXML;
import sam.systemtools.Key;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.awt.Color;
import java.text.NumberFormat;
import javax.swing.text.NumberFormatter;
/**
*
* @author samfentress
*/
public class Gui_Options extends javax.swing.JFrame {
boolean anyMoveForward;
Key moveForwardButton;
Key leftButton;
Key rightButton;
int fontSize;
Color backColor;
Color fontColor;
int state;
NumberFormat integerFormat;
NumberFormatter textFormatter;
/** Creates new form Gui_Options */
public Gui_Options() {
integerFormat = NumberFormat.getIntegerInstance();
textFormatter = new NumberFormatter(integerFormat);
textFormatter.setAllowsInvalid(false);
initComponents();
setLocationRelativeTo(null);
loadData();
setVisible(true);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
buttonGroup1 = new javax.swing.ButtonGroup();
fontColorChooser = new javax.swing.JColorChooser();
backColorChooser = new javax.swing.JColorChooser();
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
SelectBackColor = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
FontSize = new javax.swing.JFormattedTextField(textFormatter);
jLabel4 = new javax.swing.JLabel();
SelectFontColor = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
anyRadio = new javax.swing.JRadioButton();
singleRadio = new javax.swing.JRadioButton();
scrBtnPanel = new javax.swing.JPanel();
scrBtnTxt = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
lftBtnPanel = new javax.swing.JPanel();
lftBtnTxt = new javax.swing.JLabel();
rgtBtnPanel = new javax.swing.JPanel();
rgtBtnTxt = new javax.swing.JLabel();
Cancel = new javax.swing.JButton();
Ok = new javax.swing.JButton();
Reset = new javax.swing.JButton();
getContentPane().setLayout(new java.awt.GridBagLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Options");
addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
formKeyPressed(evt);
}
});
jPanel1.setLayout(new java.awt.GridBagLayout());
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Appearance"));
jPanel1.setMinimumSize(new java.awt.Dimension(250, 130));
jPanel1.setPreferredSize(new java.awt.Dimension(250, 130));
jLabel2.setText("Background color:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 4, 3, 12);
jPanel1.add(jLabel2, gridBagConstraints);
SelectBackColor.setText("Select");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 4);
jPanel1.add(SelectBackColor, gridBagConstraints);
jLabel3.setText("Font size:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 4, 3, 12);
jPanel1.add(jLabel3, gridBagConstraints);
FontSize.setText("13");
FontSize.setMaximumSize(new java.awt.Dimension(25, 22));
FontSize.setMinimumSize(new java.awt.Dimension(25, 22));
FontSize.setPreferredSize(new java.awt.Dimension(25, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 4);
jPanel1.add(FontSize, gridBagConstraints);
jLabel4.setText("Font color:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 12);
jPanel1.add(jLabel4, gridBagConstraints);
SelectFontColor.setText("Select");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4);
jPanel1.add(SelectFontColor, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.insets = new java.awt.Insets(0, 20, 10, 20);
getContentPane().add(jPanel1, gridBagConstraints);
jPanel2.setLayout(new java.awt.GridBagLayout());
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Command"));
jPanel2.setMinimumSize(new java.awt.Dimension(250, 150));
jPanel2.setPreferredSize(new java.awt.Dimension(250, 150));
jLabel5.setText("Next screen button:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 4, 3, 19);
jPanel2.add(jLabel5, gridBagConstraints);
buttonGroup1.add(anyRadio);
anyRadio.setSelected(true);
anyRadio.setText("Any (default)");
anyRadio.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
anyRadio.setMargin(new java.awt.Insets(0, 0, 0, 0));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 2, 9);
jPanel2.add(anyRadio, gridBagConstraints);
buttonGroup1.add(singleRadio);
singleRadio.setText("Single button:");
singleRadio.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
singleRadio.setMargin(new java.awt.Insets(0, 0, 0, 0));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 5, 9);
jPanel2.add(singleRadio, gridBagConstraints);
scrBtnPanel.setLayout(new java.awt.GridBagLayout());
scrBtnPanel.setBackground(new java.awt.Color(255, 255, 255));
scrBtnPanel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
scrBtnPanel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
scrBtnPanelMouseClicked(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
scrBtnPanelMouseExited(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
scrBtnPanelMouseEntered(evt);
}
});
scrBtnTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
scrBtnTxt.setText("Space");
scrBtnTxt.setMaximumSize(new java.awt.Dimension(60, 18));
scrBtnTxt.setMinimumSize(new java.awt.Dimension(60, 18));
scrBtnTxt.setPreferredSize(new java.awt.Dimension(60, 18));
scrBtnPanel.add(scrBtnTxt, new java.awt.GridBagConstraints());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 4);
jPanel2.add(scrBtnPanel, gridBagConstraints);
jLabel6.setText("Left option button:");
jLabel6.setMaximumSize(new java.awt.Dimension(128, 16));
jLabel6.setMinimumSize(new java.awt.Dimension(128, 16));
jLabel6.setPreferredSize(new java.awt.Dimension(128, 16));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 4, 2, 4);
jPanel2.add(jLabel6, gridBagConstraints);
jLabel7.setText("Right option button:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(3, 4, 2, 7);
jPanel2.add(jLabel7, gridBagConstraints);
lftBtnPanel.setBackground(new java.awt.Color(255, 255, 255));
lftBtnPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
lftBtnPanel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
lftBtnPanelMouseClicked(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
lftBtnPanelMouseExited(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
lftBtnPanelMouseEntered(evt);
}
});
lftBtnTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lftBtnTxt.setText("L. Arrow");
lftBtnTxt.setMaximumSize(new java.awt.Dimension(60, 18));
lftBtnTxt.setMinimumSize(new java.awt.Dimension(60, 18));
lftBtnTxt.setPreferredSize(new java.awt.Dimension(60, 18));
org.jdesktop.layout.GroupLayout lftBtnPanelLayout = new org.jdesktop.layout.GroupLayout(lftBtnPanel);
lftBtnPanel.setLayout(lftBtnPanelLayout);
lftBtnPanelLayout.setHorizontalGroup(
lftBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(lftBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
);
lftBtnPanelLayout.setVerticalGroup(
lftBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(lftBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 2, 4);
jPanel2.add(lftBtnPanel, gridBagConstraints);
rgtBtnPanel.setBackground(new java.awt.Color(255, 255, 255));
rgtBtnPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
rgtBtnPanel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
rgtBtnPanelMouseClicked(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
rgtBtnPanelMouseExited(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
rgtBtnPanelMouseEntered(evt);
}
});
rgtBtnTxt.setBackground(new java.awt.Color(204, 204, 204));
rgtBtnTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
rgtBtnTxt.setText("R. Arrow");
rgtBtnTxt.setMaximumSize(new java.awt.Dimension(60, 18));
rgtBtnTxt.setMinimumSize(new java.awt.Dimension(60, 18));
rgtBtnTxt.setPreferredSize(new java.awt.Dimension(60, 18));
org.jdesktop.layout.GroupLayout rgtBtnPanelLayout = new org.jdesktop.layout.GroupLayout(rgtBtnPanel);
rgtBtnPanel.setLayout(rgtBtnPanelLayout);
rgtBtnPanelLayout.setHorizontalGroup(
rgtBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(rgtBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
);
rgtBtnPanelLayout.setVerticalGroup(
rgtBtnPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(rgtBtnTxt, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 2, 4);
jPanel2.add(rgtBtnPanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.insets = new java.awt.Insets(20, 20, 10, 20);
getContentPane().add(jPanel2, gridBagConstraints);
Cancel.setText("Cancel");
Cancel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
CancelMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.insets = new java.awt.Insets(5, 0, 10, 0);
getContentPane().add(Cancel, gridBagConstraints);
Ok.setText("Ok");
Ok.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
OkMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 0, 10, 20);
getContentPane().add(Ok, gridBagConstraints);
Reset.setText("Reset");
Reset.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ResetMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.insets = new java.awt.Insets(5, 45, 10, 0);
getContentPane().add(Reset, gridBagConstraints);
pack();
}// </editor-fold>//GEN-END:initComponents
private void ResetMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ResetMouseClicked
Options.resetDefaults();
loadData();
}//GEN-LAST:event_ResetMouseClicked
private void CancelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_CancelMouseClicked
this.dispose();
}//GEN-LAST:event_CancelMouseClicked
private void OkMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_OkMouseClicked
boolean anyKeyPress = anyRadio.isSelected();
fontSize = Integer.parseInt(FontSize.getText());
fontColor = Color.BLACK;
backColor = Color.WHITE;
Options options = new Options(anyKeyPress, moveForwardButton, leftButton, rightButton, fontSize, fontColor, backColor);
this.dispose();
}//GEN-LAST:event_OkMouseClicked
private void formKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyPressed
int keyCode = evt.getKeyCode();
int keyLoc = evt.getKeyLocation();
char keyChar = evt.getKeyChar();
Key key = new Key(keyCode,keyLoc,keyChar);
String rep = key.getString();
switch (state){
case 1:
scrBtnTxt.setText(rep);
moveForwardButton = key;
singleRadio.setSelected(true);
break;
case 2:
lftBtnTxt.setText(rep);
leftButton = key;
break;
case 3:
rgtBtnTxt.setText(rep);
rightButton = key;
break;
default:
return;
}
}//GEN-LAST:event_formKeyPressed
private void rgtBtnPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rgtBtnPanelMouseClicked
rgtBtnTxt.setText("?");
state = 3;
this.requestFocus();
}//GEN-LAST:event_rgtBtnPanelMouseClicked
private void lftBtnPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lftBtnPanelMouseClicked
lftBtnTxt.setText("?");
state = 2;
this.requestFocus();
}//GEN-LAST:event_lftBtnPanelMouseClicked
private void scrBtnPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scrBtnPanelMouseClicked
scrBtnTxt.setText("?");
state = 1;
this.requestFocus();
}//GEN-LAST:event_scrBtnPanelMouseClicked
private void rgtBtnPanelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rgtBtnPanelMouseExited
rgtBtnPanel.setBackground(new java.awt.Color(255, 255, 255));
}//GEN-LAST:event_rgtBtnPanelMouseExited
private void rgtBtnPanelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rgtBtnPanelMouseEntered
rgtBtnPanel.setBackground(new java.awt.Color(252, 243, 194));
}//GEN-LAST:event_rgtBtnPanelMouseEntered
private void lftBtnPanelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lftBtnPanelMouseExited
lftBtnPanel.setBackground(new java.awt.Color(255, 255, 255));
}//GEN-LAST:event_lftBtnPanelMouseExited
private void lftBtnPanelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lftBtnPanelMouseEntered
lftBtnPanel.setBackground(new java.awt.Color(252, 243, 194));
}//GEN-LAST:event_lftBtnPanelMouseEntered
private void scrBtnPanelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scrBtnPanelMouseExited
scrBtnPanel.setBackground(new java.awt.Color(255, 255, 255));
}//GEN-LAST:event_scrBtnPanelMouseExited
private void scrBtnPanelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scrBtnPanelMouseEntered
scrBtnPanel.setBackground(new java.awt.Color(252, 243, 194));
}//GEN-LAST:event_scrBtnPanelMouseEntered
private void loadData(){
Options options = new Options();
anyMoveForward = options.isAnyKeyAhead();
moveForwardButton = options.getKeyAhead();
leftButton = options.getLeftKey();
rightButton = options.getRightKey();
fontSize = options.getFontSize();
fontColor = options.getFontColor();
backColor = options.getBackColor();
anyRadio.setSelected(anyMoveForward);
singleRadio.setSelected(!anyMoveForward);
scrBtnTxt.setText(moveForwardButton.getString());
lftBtnTxt.setText(leftButton.getString());
rgtBtnTxt.setText(rightButton.getString());
FontSize.setText(""+fontSize);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Gui_Options().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton Cancel;
private javax.swing.JFormattedTextField FontSize;
private javax.swing.JButton Ok;
private javax.swing.JButton Reset;
private javax.swing.JButton SelectBackColor;
private javax.swing.JButton SelectFontColor;
private javax.swing.JRadioButton anyRadio;
private javax.swing.JColorChooser backColorChooser;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JColorChooser fontColorChooser;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel lftBtnPanel;
private javax.swing.JLabel lftBtnTxt;
private javax.swing.JPanel rgtBtnPanel;
private javax.swing.JLabel rgtBtnTxt;
private javax.swing.JPanel scrBtnPanel;
private javax.swing.JLabel scrBtnTxt;
private javax.swing.JRadioButton singleRadio;
// End of variables declaration//GEN-END:variables
}